<?dyhb
class TemplateGtkGlade extends Template{

	/**
	 * 缺省的全局模板目录管理器
	 * 
	 * @access private
	 * @static
	 * @var TemplateFileManager
	 */
	static private $_oTemplateFileManager;

	/**
	 * 分析器目录
	 * 
	 * @access private
	 * @var array:string
	 */
	static private $_arrParserDirs=array();
	private $_arrWidgetVariables=array();
	private $_arrTotalWidgets=array();
	private $_arrWidgetsTree=array();
	private $_arrWidgetIds=array();

	/**
	 * 设置一个 分析器目录
	 * 
	 * @access public
	 * @param $sDir string 分析器目录
	 * @static
	 * @return void
	 */
	static public function addParserDir($sDir){}

	/**
	 * 清空已设置的分析器目录，并返回原有的数量
	 * 
	 * @access public
	 * @static
	 * @return int
	 */
	static public function clearParserDir(){}

	/**
	 * 创建一个默认的 分析器管理器
	 * 
	 * @access public
	 * @static
	 * @return TemplateObjProcessorManager
	 */
	static public function getDefaultParserManager(){}

	/**
	 * 创建一个全局的 默认模板目录管理器
	 * 
	 * @access public
	 * @static
	 * @return void
	 */
	static public function createDefaultTemplateDirManger(){}

	/**
	 * 设置一个模版文件存放目录
	 * 
	 * @access public
	 * @param $sDir string 模版文件存放目录
	 * @static
	 * @return void
	 */
	static public function addTemplateDir($sDir){}

	/**
	 * 清空已经设置的模版文件目录
	 * 
	 * @access public
	 * @static
	 * @return int
	 */
	static public function clearTemplateDirs(){}

	/**
	 * 创建一个 模版目录的备忘录
	 * 
	 * @access public
	 * @static
	 * @return array
	 */
	static public function createTemplateDirsMemento(){}

	/**
	 * 使用 一个备忘录
	 * 
	 * @access public
	 * @param $arrMemento array 备忘录
	 * @static
	 * @return oldValue
	 */
	static public function setTemplateDirsMemento(array $arrMemento){}

	/**
	 * 创建模板目录迭代器
	 * 
	 * @access public
	 * @static
	 * @return DArrayReverseIterator
	 */
	static public function createTemplateDirIterator(){}

	/**
	 * 根据模版 文件名查找 文件
	 * 
	 * @access public
	 * @param $sTemplateFile string 模版文件名称
	 * @static
	 * @return string
	 */
	static public function findTemplate($sTemplateFile){}

	/**
	 * 取得 真实的 WidgetID
	 * 
	 * @access public
	 * @param $WidgetId string Widget ID
	 * @return string
	 */
	static public function trimWidgetId($WidgetId){}

	/**
	 * 为一个Glade文件生成一个不重复的 Class名称
	 *
	 * @access public
	 * @param $sGladeFile string Glade文件路径
	 * @return void
	 */
	static public function createGladeClassName($sGladeFile){}
	
	/**
	 * 窗体变量名称
	 * 
	 * @access public
	 * @param $WidgetOrId TemplateGtkGladeWidget|string Widget对象 或 Widget ID
	 * @return string
	 */
	static public function getWidgetVariableName($WidgetOrId){}
	
	/**
	 * 窗体创建函数名称
	 * 
	 * @access public
	 * @param $WidgetOrId Widget对象 或 Widget ID
	 * @return string
	 */
	static public function getWidgetCreateFunctionName($WidgetOrId){}

	/**
	 * 创建窗体
	 *
	 * @access public
	 * @param $sGladePath string Glade 模版文件路径
	 * @param $sWidgetId string 窗体名称
	 * @param $arrObjectForSignal=array() array 用于响应 Signal 事件的对象, 数组键名做为 对象的变量名
	 * @return GtkWidget|null
	 */
	public function create($sGladeFile,$sWidgetId,array $arrObjectForSignal=array()){}

	/**
	 * 载入Gtk窗口类
	 * 
	 * @access public
	 * @param $sGladePath string
	 * @return string|null
	 */
	public function loadGtkWidgetCreatorClass($sGladePath){}

	/**
	 * 创建窗体
	 *
	 * @access public
	 * @param $sGladePath string Glade 模版文件路径
	 * @param $sWidgetId string 窗体名称
	 * @param $aView=null ViewGtk 所属视图
	 * @param $bCreateNew=false bool 创建新窗体
	 * @return GtkWidget|null
	 */
	public function getWidget($sGladeFile,$sWidgetId,ViewGtk $oView=null,$bCreateNew=false){}
	
	/**
	 * 生成编译文件
	 * 
	 * @access protected
	 * @param $sTemplatePath string 模版路径
	 * @param $sCompiledPath string 编译文件路径
	 * @param &$sCompiled string 各个 UIObject编译内容
	 * @return void
	 */
	protected function makeCompiledFile($sTemplatePath,$sCompiledPath,&$sCompiled){}

	protected function compileTemplateObj(){}
	
	/**
	 * 添加窗体
	 *
	 * @access public
	 * @param $sClass
	 * @param $sWidgetId
	 * @param $sParentId
	 * @return void
	 */
	public function addWidget_($sWidgetName,$sParentName=null){}
	
	/**
	 * 检查同名ID的 窗体
	 *
	 * @access public
	 * @param $sWidgetId 窗体ID
	 * @param $sWidgetClass 窗体Class
	 * @return void
	 */
	public function checkSameIdWidget_($sWidgetId,$sWidgetClass){}
	
	/**
	 * 获取窗体
	 * 
	 * @access public
	 * @param $oWidget GtkWidget
	 * @return array
	 * @static
	 */
	static public function getWidgetCreator(GtkWidget $oWidget){}

}
